Computers are able to communicate with other computers and systems only when such devices are “connected” together as part of a communications network. The Internet is one such communications network. A primary advantage of the Internet is that is a world-wide, and widely used network, and therefor can connect computers together that may be located anywhere in the world. Other types of communications networks include local area networks (“LAN”), which are private networks, often created to connect a limited number of trusted computers, usually in an office or home setting. Another type of network is a wide area network (“WAN”) that typically provides communication access to the Internet using a wireless radio protocol.
There are many different reasons for wanting to connect one or more remote computers to a LAN. By way of example, a LAN is often secure, and it may contain important corporate resources at the office, or contain one's personal media files in a home environment. Usually in conjunction with a private LAN, a device known as a Network Address Translating (“NAT”) Router will manage the network connections between (a) multiple devices (logical or physical) on the LAN and (b) an “upstream” connection to another network that typically leads eventually to the Internet.
FIG. 1A illustrates a typical prior art Network Address Translating Router 100. FIG. 1A shows the general physical architecture of such a system. In this configuration, the Network Address Translator/Router 102 is connected to a series of client devices 104 through a local area network 106. The NAT 112 is connected to the local area network via a local adapter 108. The NAT views all traffic on the LAN, and any traffic it deems routable will be accepted into the NAT 112 for address translation. This translation involves taking the network address of the LAN 106 and creating a socket-for-socket translation that is native to the “upstream” network 114. The network 114 is also accessed via a local adapter 108, which may be of the same type as used for the local network 106. The upstream network will generally connect to one or more servers 116.
From the point of view of each server 116, the client LAN 106 appears to be one or more clients on a directly accessible network 114. However, traffic from server network 114 is only passed back to the specific client 104 based upon the stored translations of addresses maintained in the NAT 112. In other words, if an address is not known to the NAT 112, it will not be granted access to the local network 106.
FIG. 1B illustrates another example of a prior art network configuration. In this example, the network architecture is looking at the IP addresses rather than physical connections, and may focus on a single client 104 making connections to the upstream network. As shown in FIG. 1B, the client 104 is connected to a LAN 106 shared with the NAT Router 102. As an alternative, the NAT Router 102 may also communicate with other clients similar to client 104, through LAN 106. Traffic from the LAN 106 handled by the NAT router 102 is mapped or translated to a range of addresses appropriate to or recognized by the server's network. If such mapping were on the internet, such mapping could entail an extremely large range of legal addresses.
In at least one mode, the NAT router described above, can be used to support the inventive architecture relying on a class of NAT known as a “symmetric NAT.” More particularly, as shown in FIG. 1B, a client network connection 132, which has a specific address and port, is given a unique translation address 136 for accessing the particular server 116 in question. A new and unique address and port 136 is assigned for each new address and port on the LAN 106. In this configuration, the address and port 136 is sent to a specific address and port 140 on the corresponding server 116. Given this mapping, only a return from the address and port 140 on the upstream network 138 will ever be mapped back to the original address and port on the client 106. While this is one example of a prior art configuration, the application and scope of the inventive router is not limited to symmetric NATs, but is one type of configuration supported by the inventive router.
Although not specifically illustrated, another task of the NAT router is to create a safe IP address range for any of the client LANs 106 that are managed by the router. For some router setups, the NAT address range will be manually configured by the IT personnel. In other configurations, the router will use an IP address range from a number of legal “private network” ranges (e.g., ranges guaranteed to not be on the internet, and reserved only for private networks).
To improve the technology of NAT routers, a number of additional features have been designed for use with a NAT router system. Particularly when used in a mobile context, it would be advantageous to use multiple upstream connections where possible. This also allows for intelligent routing over different connections as their quality changes either through, by way of example simple usage, or through mobility of the router. Making the router more “connection-aware” allows these decisions to be made efficiently and effectively. For use in personal networks, the NAT router should be more intelligent in the selection and assignment of IP address ranges, given that the router will typically not always by connected to the internet, and may have to contend with other NAT routers. The selection and assignment process for IP address ranges needs to occur automatically and without professional personnel or human intervention. Moreover, such selection and assignment needs to be able to change dynamically, without re-starting or rebooting the personal network.